<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Bochs Developers Guide</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="NEXT"
TITLE="Resources for developers"
HREF="resources.html"></HEAD
><BODY
CLASS="BOOK"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="BOOK"
><A
NAME="AEN1"
></A
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="TITLE"
><A
NAME="AEN2"
>Bochs Developers Guide</A
></H1
><H3
CLASS="AUTHOR"
><A
NAME="AEN5"
></A
>Kevin Lawton</H3
><H3
CLASS="AUTHOR"
><A
NAME="AEN8"
></A
>Bryce Denney</H3
><H3
CLASS="AUTHOR"
><A
NAME="AEN11"
></A
>Christophe Bothamy</H3
><H4
CLASS="EDITEDBY"
>Edited by</H4
><H3
CLASS="EDITOR"
>Michael Calabrese</H3
><HR></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>1. <A
HREF="resources.html"
>Resources for developers</A
></DT
><DD
><DL
><DT
>1.1. <A
HREF="resources.html#AEN20"
>Setting up CVS write access</A
></DT
><DD
><DL
><DT
>1.1.1. <A
HREF="resources.html#AEN23"
>Install ssh and cvs</A
></DT
><DT
>1.1.2. <A
HREF="resources.html#AEN36"
>ssh to cvs.sf.net</A
></DT
><DT
>1.1.3. <A
HREF="resources.html#AEN44"
>Set CVS_RSH environment variable to ssh</A
></DT
><DT
>1.1.4. <A
HREF="resources.html#AEN48"
>cvs checkout</A
></DT
></DL
></DD
><DT
>1.2. <A
HREF="using-cvs-write-access.html"
>Using CVS write access</A
></DT
><DD
><DL
><DT
>1.2.1. <A
HREF="using-cvs-write-access.html#AEN59"
>Checking in files</A
></DT
></DL
></DD
><DT
>1.3. <A
HREF="trackers.html"
>SourceForge bug, feature, and patch trackers</A
></DT
><DT
>1.4. <A
HREF="other.html"
>Ideas for other sections</A
></DT
></DL
></DD
><DT
>2. <A
HREF="about-the-code.html"
>About the code</A
></DT
><DD
><DL
><DT
>2.1. <A
HREF="about-the-code.html#CODE-OVERVIEW"
>Overview</A
></DT
><DT
>2.2. <A
HREF="directory-structure.html"
>Directory Structure</A
></DT
><DT
>2.3. <A
HREF="emulator-objects.html"
>Emulator Objects</A
></DT
><DD
><DL
><DT
>2.3.1. <A
HREF="emulator-objects.html#AEN175"
>Weird macros and other mysteries</A
></DT
><DT
>2.3.2. <A
HREF="emulator-objects.html#STATIC-METHODS-HACK"
>Static methods hack</A
></DT
><DT
>2.3.3. <A
HREF="emulator-objects.html#CPU-MEM-OBJECTS"
>CPU und memory objects in UP/SMP configurations</A
></DT
><DT
>2.3.4. <A
HREF="emulator-objects.html#CONFIG-PARAMETER-TREE"
>The configuration parameter tree</A
></DT
><DT
>2.3.5. <A
HREF="emulator-objects.html#SAVE-RESTORE"
>The save/restore feature</A
></DT
></DL
></DD
><DT
>2.4. <A
HREF="configure-scripting.html"
>Configure Scripting</A
></DT
><DT
>2.5. <A
HREF="logfunctions.html"
>Log Functions</A
></DT
><DT
>2.6. <A
HREF="timers.html"
>timers</A
></DT
><DT
>2.7. <A
HREF="cmos-map.html"
>Bochs's CMOS map</A
></DT
><DT
>2.8. <A
HREF="sb16-emulation-basics.html"
>Sound Blaster 16 Emulation</A
></DT
><DD
><DL
><DT
>2.8.1. <A
HREF="sb16-emulation-basics.html#AEN283"
>How well does it work?</A
></DT
><DT
>2.8.2. <A
HREF="sb16-emulation-basics.html#AEN288"
>Output to a sound card</A
></DT
><DT
>2.8.3. <A
HREF="sb16-emulation-basics.html#AEN291"
>Installation on Linux</A
></DT
><DT
>2.8.4. <A
HREF="sb16-emulation-basics.html#AEN296"
>Configuring Bochs</A
></DT
><DT
>2.8.5. <A
HREF="sb16-emulation-basics.html#AEN304"
>Runtime configuration</A
></DT
><DT
>2.8.6. <A
HREF="sb16-emulation-basics.html#AEN309"
>Features planned for the future</A
></DT
><DT
>2.8.7. <A
HREF="sb16-emulation-basics.html#AEN316"
>Description of the sound output classes</A
></DT
><DT
>2.8.8. <A
HREF="sb16-emulation-basics.html#AEN322"
>Files</A
></DT
><DT
>2.8.9. <A
HREF="sb16-emulation-basics.html#AEN332"
>Classes</A
></DT
><DT
>2.8.10. <A
HREF="sb16-emulation-basics.html#AEN349"
>Methods</A
></DT
><DT
>2.8.11. <A
HREF="sb16-emulation-basics.html#AEN356"
>bx_sound_OS_c(bx_sb16_c*sb16)</A
></DT
><DT
>2.8.12. <A
HREF="sb16-emulation-basics.html#AEN370"
>~bx_sound_OS_c()</A
></DT
><DT
>2.8.13. <A
HREF="sb16-emulation-basics.html#AEN373"
>int openmidioutput(char *device)</A
></DT
><DT
>2.8.14. <A
HREF="sb16-emulation-basics.html#AEN385"
>Description of the parameters:</A
></DT
><DT
>2.8.15. <A
HREF="sb16-emulation-basics.html#AEN395"
>int midiready()</A
></DT
><DT
>2.8.16. <A
HREF="sb16-emulation-basics.html#AEN411"
>int sendmidicommand(int delta, int command, int length, Bit8u data[])</A
></DT
><DT
>2.8.17. <A
HREF="sb16-emulation-basics.html#AEN433"
>int closemidioutput()</A
></DT
><DT
>2.8.18. <A
HREF="sb16-emulation-basics.html#AEN445"
>int openwaveoutput(char *device)</A
></DT
><DT
>2.8.19. <A
HREF="sb16-emulation-basics.html#AEN479"
>int startwaveplayback(int frequency, int bits, int stereo, int format)</A
></DT
><DT
>2.8.20. <A
HREF="sb16-emulation-basics.html#AEN552"
>int waveready()</A
></DT
><DT
>2.8.21. <A
HREF="sb16-emulation-basics.html#AEN562"
>int sendwavepacket(int length, Bit8u data[])</A
></DT
><DT
>2.8.22. <A
HREF="sb16-emulation-basics.html#AEN606"
>int stopwaveplayback()</A
></DT
><DT
>2.8.23. <A
HREF="sb16-emulation-basics.html#AEN613"
>int closewaveoutput()</A
></DT
></DL
></DD
><DT
>2.9. <A
HREF="harddisk-redologs.html"
>Harddisk Images based on redologs</A
></DT
><DD
><DL
><DT
>2.9.1. <A
HREF="harddisk-redologs.html#AEN635"
>Description</A
></DT
><DT
>2.9.2. <A
HREF="harddisk-redologs.html#AEN644"
>How redologs works ?</A
></DT
><DT
>2.9.3. <A
HREF="harddisk-redologs.html#AEN737"
>Parameters</A
></DT
><DT
>2.9.4. <A
HREF="harddisk-redologs.html#AEN901"
>Redolog class description</A
></DT
><DT
>2.9.5. <A
HREF="harddisk-redologs.html#AEN953"
>Disk image classes description</A
></DT
></DL
></DD
><DT
>2.10. <A
HREF="add-keymapping.html"
>How to add keymapping in a GUI client</A
></DT
></DL
></DD
><DT
>3. <A
HREF="debugger.html"
>Debugger</A
></DT
><DD
><DL
><DT
>3.1. <A
HREF="debugger.html#AEN1055"
>compile with debugger support</A
></DT
><DT
>3.2. <A
HREF="debugger-get-started.html"
>get started in debugger</A
></DT
><DT
>3.3. <A
HREF="debugger-commands.html"
>command reference</A
></DT
><DT
>3.4. <A
HREF="debugger-techniques.html"
>techniques</A
></DT
><DT
>3.5. <A
HREF="iodebug.html"
>I/O Interface to Bochs Debugger</A
></DT
><DD
><DL
><DT
>3.5.1. <A
HREF="iodebug.html#AEN1078"
>Commands supported by port 0x8A00</A
></DT
><DT
>3.5.2. <A
HREF="iodebug.html#AEN1086"
>Access to port 0x8A01 (write-only)</A
></DT
><DT
>3.5.3. <A
HREF="iodebug.html#AEN1090"
>Sample</A
></DT
></DL
></DD
></DL
></DD
><DT
>4. <A
HREF="coding.html"
>Coding</A
></DT
><DD
><DL
><DT
>4.1. <A
HREF="coding.html#AEN1097"
>Coding guidelines</A
></DT
><DT
>4.2. <A
HREF="patches.html"
>patches:</A
></DT
><DT
>4.3. <A
HREF="cvs-release.html"
>Building a Bochs release</A
></DT
><DD
><DL
><DT
>4.3.1. <A
HREF="cvs-release.html#AEN1138"
>Preparing source files and CVS</A
></DT
><DT
>4.3.2. <A
HREF="cvs-release.html#AEN1147"
>Building the release on win32</A
></DT
><DT
>4.3.3. <A
HREF="cvs-release.html#AEN1168"
>Building the release on Linux</A
></DT
><DT
>4.3.4. <A
HREF="cvs-release.html#AEN1175"
>Uploading files and creating a file release on SF</A
></DT
></DL
></DD
></DL
></DD
><DT
>5. <A
HREF="webmastering.html"
>Webmastering</A
></DT
><DD
><DL
><DT
>5.1. <A
HREF="webmastering.html#WEBSITES"
>websites</A
></DT
><DT
>5.2. <A
HREF="shell-access.html"
>shell access to the website</A
></DT
><DT
>5.3. <A
HREF="repository.html"
>website html repository</A
></DT
><DT
>5.4. <A
HREF="site-update.html"
>automatic site update</A
></DT
><DT
>5.5. <A
HREF="other-content.html"
>other content</A
></DT
><DT
>5.6. <A
HREF="available-tools.html"
>available tools</A
></DT
></DL
></DD
></DL
></DIV
><DIV
CLASS="LOT"
><DL
CLASS="LOT"
><DT
><B
>List of Tables</B
></DT
><DT
>2-1. <A
HREF="directory-structure.html#AEN99"
>Directory structure</A
></DT
><DT
>2-2. <A
HREF="emulator-objects.html#AEN198"
>Parameter types</A
></DT
><DT
>2-3. <A
HREF="emulator-objects.html#AEN234"
>Save/restore parameter types</A
></DT
><DT
>2-4. <A
HREF="sb16-emulation-basics.html#AEN503"
>format bits</A
></DT
><DT
>2-5. <A
HREF="sb16-emulation-basics.html#AEN527"
>codecs</A
></DT
><DT
>2-6. <A
HREF="sb16-emulation-basics.html#AEN585"
>wave output types</A
></DT
><DT
>2-7. <A
HREF="harddisk-redologs.html#AEN658"
>Generic header description</A
></DT
><DT
>2-8. <A
HREF="harddisk-redologs.html#AEN699"
>Redolog specific header description</A
></DT
><DT
>2-9. <A
HREF="harddisk-redologs.html#AEN740"
>How number of entries in the catalog and number of blocks by extents are computed</A
></DT
></DL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="resources.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Resources for developers</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>